Useful macros for warlocks
There are a couple of nifty Warlock macros. If you find that a macro doesn't work, first double check that you have entered it correctly and not left any eronious markings in. If you find that a macro still doesn't work then please either make the correction or mark it as FAULTY and put the error message you received beneath the macro so that some one who is skilled with macros can fix it. Spell Macros * The following script will cast Curse of Agony as long as the targets health doesn't go below 20%. Using the script on the target and the health is below 20% it will instead cast the "anti-flee curse", Curse of Recklessness. However, you can also cast agony on mobs with less than 20% health by holding the alt key when activating the macro. /script if (UnitHealth("target")<20 and not IsAltKeyDown()) then CastSpellByName("Curse of Recklessness(Rank 1)") else CastSpellByName("Curse of Agony(Rank 1)") end; * The following script will cast Drain Soul, to collect soul shards, if the targets health is below 10%. /script if (UnitHealth("target")<10) then CastSpellByName("Drain Soul()") end; * The following script casts Curse of Tongues on mobs or PCs with mana, Curse of Weakness on anything without mana. When the mob drops under 30% health, the script casts Curse of Recklessness. I also keep the PVP script below so that I don't Curse of Tongues a Hunter in PVP. /script if (UnitHealth("target")<30) then CastSpellByName("Curse of Recklessness(Rank 1)") else if (UnitMana("target")>0) then CastSpellByName("Curse of Tongues()") else CastSpellByName("Curse of Weakness()") end end; * If the target you are attacking is a caster you will cast Curse of Tongues and if its a melee you will cast Curse of Weakness. /script if (UnitClass("target") "Warrior" or UnitClass("target") "Rogue" or UnitClass("target") "Paladin" or UnitClass("target") "Hunter") then CastSpellByName("Curse of Weakness()") else CastSpellByName("Curse of Tongues()") end; * The following script will cast Shadow Bolt or Searing Pain if the Warlock has mana enough to do so; if not it will use the equipped wand. /script if (UnitMana("player")>150) then if (UnitHealth("target")>50) then CastSpellByName("Shadow Bolt()") else CastSpellByName("Searing Pain()") end else CastSpellByName("Shoot") end; * The following script will cast Curse of Recklessness on humanoid monsters to prevent runners, cast Curse of Tongues on non-humanoid casters, or cast Curse of Agony on any other kind of monster. /script if (UnitCreatureType("target") "Humanoid") then CastSpellByName("Curse of Recklessness(Rank 1)") else if (UnitMana("target")>0) then CastSpellByName("Curse of Tongues()") else CastSpellByName("Curse of Agony()") end end; * WarlockMash (low level) - If target is close to death, Drain Soul for soul shard, if it's at full health cast Curse of Agony, otherwise cast Shadowbolt. Might edit that last bit to use a wand. Meant for mindless button mashing that works real well at lower levels. Notice only the spell level of the Shadow Bolt is used since at lower levels you may not want to burn the mana for the higher level ones. You'll notice levels of others are left off since you'll always want to be casting the highest level of them. /script c = CastSpellByName; h = UnitHealth("target"); if (h < 13) then c("Drain Soul"); else if (h < 100) then c("Shadow Bolt(Rank 2)") else c("Curse of Agony") end; end; *Drain Life button mash Macro, will only allow the channeled spell to be cast once, saving mana, until the spell is complete /script cS, W = "Drain Life()", 3 /script --CastSpellByName("Drain Life()") /script if sA nil then sT = time(); eT = time()+W; CastSpellByName(cS); sA = true end; if eT <= time() then sA = nil end Minion Macros General: * The following script will cast Fear on your target and cause your Minion to stop attacking so as to reduce the chance that the Fear will break early. /cast Fear() /script PetFollow() end; Felhunter Macros * The following script will cause you to target your self and then have your Felhunter cast Devour Magic on your character to remove a negative magical effect without you having to loose your enemy target. /script TargetUnit("player"); CastPetAction("4"); TargetLastEnemy() * This macro will cause your Felhunter to attempt to cast Devour Magic on you and then on it self without you having to loose your enemy target. There will be a simple error message each time you do this but it is, at worst, a minor annoyance. /script TargetUnit("player"); CastPetAction("4"); TargetUnit("Pet") CastPetAction("4"); TargetLastEnemy() * This macro will caust your Felhunter to attempt to cast Devour Magic on you and then on it self and then on each of your party members without you having to loose your enemy target. There will be a simple error message each time you do this but it is, at worst, a minor annoyance /script local C,U,T,u=CastPetAction,UnitExists,TargetUnit,{"player","pet"} for i=1,2 do if U(ui) then T(ui) C(4) end end for i=1,4 do if U("party"..i) then T("party"..i) C(4) end end TargetLastEnemy() Succubus Macros * The following script will cause your Succubus to cast Seduce on your target and will announce this to those around you so that they do not attack the enemy causing the seduction to break early. The %t is a code that will insert the exact name of your target into the announcement. /script CastPetAction("6"); /s Casting Secuction on %t! DO NOT ATTACK! Note: If cutting and pasting into WoW as a macro, ensure formatting is correct (e.g. removing superfluous spaces) before using. Category:Warlocks Category:Macros